# -*- coding: utf-8 -*-
# @Time : 2022/4/9 20:40
# @Author : Liuqing
# @File : 16_寻找差异.py
# @Software : PyCharm
from math import floor


def difference_by(a, b, fn):
    b = set(map(fn, b))
    return [item for item in a if fn(item) not in b]


if __name__ == '__main__':
    print(difference_by([2.1, 1.2], [2.3, 3.4], floor))
    print(difference_by([{'x': 2}, {'x': 1}], [{'x': 1}], lambda v: v['x']))
